Пакетни системи – Мениджъри - rpm dpkg apt yum
pkgtool pacman
Повечето модерни Unix-подобни операционни системи
предлагат централизиран механизъм за намиране и инсталиране на
софтуер. Софтуерът обикновено се разпространява под формата на пакети ,
съхранявани в хранилища . Работата с пакети е известна
като управление на пакети . Пакетите предоставят
основните компоненти на операционната система, заедно със споделени библиотеки,
приложения, услуги и документация.
Система за управление на пакети прави много повече от еднократна инсталация
на софтуер. Той също така предоставя инструменти за надграждане на вече
инсталирани пакети. Хранилищата на пакети помагат да се гарантира, че
кодът е проверен за използване във вашата система и че инсталираните версии на
софтуера са одобрени от разработчици и поддържащи пакети.
Когато конфигурирате сървъри или среди за разработка, често е необходимо да
гледате извън официалните хранилища. Пакетите в стабилното издание на
дистрибуция може да са остарели, особено когато става въпрос за нов или бързо
променящ се софтуер. Независимо от това, управлението на пакети е
жизненоважно умение за системните администратори и разработчиците, а
богатството на пакетиран софтуер за големи дистрибуции е огромен ресурс.
Това ръководство е предназначено като бърза справка за основите на
намирането, инсталирането и надграждането на пакети в различни дистрибуции и
трябва да ви помогне да превеждате тези знания между системите.
Системи за
управление на пакети: Кратък преглед
Повечето пакетни системи са изградени около колекции от пакетни
файлове. Файлът на пакета обикновено е архив, който съдържа компилирани
двоични файлове и други ресурси, съставляващи софтуера, заедно с инсталационни
скриптове. Пакетите също съдържат ценни метаданни, включително
техните зависимости , списък на други пакети, необходими за
тяхното инсталиране и стартиране.
Въпреки че тяхната функционалност и предимства са сходни, форматите и
инструментите за опаковане варират в зависимост от платформата:
Операционна система |
Формат |
Инструмент (и) |
Debian |
.deb |
apt, apt-cache, apt-get,dpkg |
Ubuntu |
.deb |
apt, apt-cache, apt-get,dpkg |
CentOS |
.rpm |
yum |
Fedora |
.rpm |
dnf |
FreeBSD |
Пристанища, .txz |
make, pkg |
В Debian и системи, базирани на него, като Ubuntu, Linux Mint
и Raspbian, форматът на пакета е .debфайлът. APT, Разширеният инструмент за
опаковане, предоставя команди, използвани за най-често срещаните операции:
Търсене на хранилища, инсталиране на колекции от пакети и техните зависимости и
управление на надстройки. Командите APT работят като преден край на dpkgпомощната програма от
по-ниско ниво , която обработва инсталирането на отделни .debфайлове в локалната система и понякога се
извиква директно.
Последните издания на повечето дистрибуции, извлечени от Debian, включват aptкомандата, която предлага кратък и унифициран интерфейс за често срещани операции,
които традиционно се обработват от по-специфичните apt-getи apt-cache. Използването му не е задължително, но може да опрости някои задачи.
CentOS, Fedora
и други членове на семейството Red Hat използват RPM
файлове. В CentOS yumсе използва за взаимодействие както с
отделни файлове с пакети, така и с хранилища.
В последните версии на Fedora yumе заменен от dnfмодернизирана вилица, която запазва
по-голямата част от yumинтерфейса на.
Системата на двоичен пакет на FreeBSD се
администрира с pkgкомандата. FreeBSD предлага и Ports Collection, локална структура на директории и инструменти,
които позволяват на потребителя да извлича, компилира и инсталира пакети
директно от източника, използвайки Makefiles. Обикновено
е много по-удобен за използване pkg, но понякога не е наличен предварително компилиран пакет или може да се
наложи да промените опциите по време на компилиране.
Актуализиране
на списъци с пакети
Повечето системи поддържат локална база данни за пакетите, достъпни от
отдалечени хранилища. Най-добре е да актуализирате тази база данни, преди
да инсталирате или надстроите пакетите. Като частично изключение от този
модел yumи dnfще проверява за актуализации преди
извършване на някои операции, но можете да ги попитате по всяко време дали са
налични актуализации.
Система |
Команда |
Debian / Ubuntu |
sudo apt-get update |
sudo apt update |
|
CentOS |
yum check-update |
Fedora |
dnf check-update |
Пакети на FreeBSD |
sudo pkg update |
Портове на
FreeBSD |
sudo portsnap fetch update |
Надстройте
инсталираните пакети
Уверението, че целият инсталиран софтуер на машината е актуален, би било
огромно начинание без пакетна система. Ще трябва да проследявате
измененията и предупрежденията за защита за стотици различни
пакети. Въпреки че мениджърът на пакети не решава всеки проблем, който ще
срещнете при надграждане на софтуера, той ви позволява да поддържате повечето
системни компоненти с няколко команди.
Във FreeBSD надстройването на инсталираните
портове може да доведе до пробивни промени или да изисква стъпки за ръчна
конфигурация. Най-добре е да прочетете, /usr/ports/UPDATINGпреди да надстроите с portmaster.
Система |
Команда |
Бележки |
Debian / Ubuntu |
sudo apt-get upgrade |
Надстройва
само инсталираните пакети, където е възможно. |
sudo apt-get dist-upgrade |
Може да
добавя или премахва пакети, за да задоволи нови зависимости. |
|
sudo apt upgrade |
Харесвам apt-get upgrade. |
|
sudo apt full-upgrade |
Харесвам apt-get dist-upgrade. |
|
CentOS |
sudo yum update |
|
Fedora |
sudo dnf upgrade |
|
Пакети на FreeBSD |
sudo pkg upgrade |
|
Портове на
FreeBSD |
less /usr/ports/UPDATING |
Използва lessза преглед на бележки за
актуализация за портове (използвайте клавишите със стрелки за превъртане,
натиснете q, за да излезете). |
cd /usr/ports/ports-mgmt/portmaster && sudo make install && sudo portmaster -a |
Инсталира portmasterи използва за актуализиране на
инсталирани портове. |
Повечето дистрибуции предлагат графичен или управляван от меню преден край
на колекции от пакети. Те могат да бъдат добър начин за сърфиране по
категории и откриване на нов софтуер. Често обаче най-бързият и ефективен
начин за намиране на пакет е търсенето с инструменти на командния ред.
Система |
Команда |
Бележки |
Debian / Ubuntu |
apt-cache search search_string |
|
apt search search_string |
||
CentOS |
yum search search_string |
|
yum search all search_string |
Търси
всички полета, включително описание. |
|
Fedora |
dnf search search_string |
|
dnf search all search_string |
Търси всички
полета, включително описание. |
|
Пакети на FreeBSD |
pkg search search_string |
Търси по
име. |
pkg search -f search_string |
Търси по
име, връщайки пълни описания. |
|
pkg search -D search_string |
Описание
на търсенията. |
|
Портове на
FreeBSD |
cd /usr/ports && make search name=package |
Търси по
име. |
cd /usr/ports && make search key=search_string |
Търси
коментари, описания и зависимости. |
Вижте информация за
конкретен пакет
Когато решавате какво да инсталирате, често е полезно да прочетете подробни
описания на пакетите. Заедно с човешки четим текст, те често включват
метаданни като номера на версиите и списък на зависимостите на пакета.
Система |
Команда |
Бележки |
Debian / Ubuntu |
apt-cache show package |
Показва
локално кеширана информация за пакет. |
apt show package |
||
dpkg -s package |
Показва
текущото състояние на инсталиран пакет. |
|
CentOS |
yum info package |
|
yum deplist package |
Изброява
зависимости за даден пакет. |
|
Fedora |
dnf info package |
|
dnf repoquery --requires package |
Изброява зависимости
за даден пакет. |
|
Пакети на FreeBSD |
pkg info package |
Показва
информация за инсталиран пакет. |
Портове на
FreeBSD |
cd /usr/ports/category/port && cat pkg-descr |
Инсталирайте пакет
от хранилища
След като знаете името на даден пакет, обикновено можете да го инсталирате
и неговите зависимости с една команда. Като цяло можете да предоставите
множество пакети за инсталиране, като просто ги изброите всички.
Система |
Команда |
Бележки |
Debian / Ubuntu |
sudo apt-get install package |
|
sudo apt-get install package1 package2
... |
Инсталира
всички изброени пакети. |
|
sudo apt-get install -y package |
Приема
„да“, където aptобикновено се изисква да продължи. |
|
sudo apt install
package |
Показва цветна
лента за напредъка. |
|
CentOS |
sudo yum install
package |
|
sudo yum install
package1 package2 ... |
Инсталира
всички изброени пакети. |
|
sudo yum install
-y package |
Приема
„да“, където yumобикновено се изисква да продължи. |
|
Fedora |
sudo dnf install
package |
|
sudo dnf install
package1 package2 ... |
Инсталира
всички изброени пакети. |
|
sudo dnf install
-y package |
Приема
„да“, където dnfобикновено се изисква да продължи. |
|
Пакети на FreeBSD |
sudo pkg install
package |
|
sudo pkg install
package1 package2 ... |
Инсталира
всички изброени пакети. |
|
Портове на
FreeBSD |
cd /usr/ports/category/port && sudo make install |
Изгражда и
инсталира порт от източник. |
Инсталирайте пакет
от локалната файлова система
Понякога, въпреки че софтуерът не е официално опакован за дадена операционна
система, разработчик или доставчик ще предложи пакетни файлове за
изтегляне. Обикновено можете да ги изтеглите с вашия уеб браузър или
чрез curlкомандния ред. След като
пакетът е в целевата система, той често може да бъде инсталиран с една команда.
В системите, извлечени от Debian, dpkgобработва отделни файлове с
пакети. Ако даден пакет има неудовлетворени зависимости, gdebiчесто може да се използва
за извличането им от официални хранилища.
В системите CentOS и Fedora yumи dnfсе използват за инсталиране на отделни файлове и също така ще се справят с
необходимите зависимости.
Система |
Команда |
Бележки |
Debian / Ubuntu |
sudo dpkg -i package.deb |
|
sudo apt-get install -y gdebi
&& sudo gdebi package.deb |
Инсталира
и използва gdebiза инсталиране package.debи извличане на липсващи
зависимости. |
|
CentOS |
sudo yum install
package.rpm |
|
Fedora |
sudo dnf install
package.rpm |
|
Пакети на FreeBSD |
sudo pkg add
package.txz |
|
sudo pkg add
-f package.txz |
Инсталира
пакета, дори ако вече е инсталиран. |
Премахнете един или
повече инсталирани пакети
Тъй като мениджърът на пакети знае какви файлове се предоставят от даден
пакет, той обикновено може да ги премахне чисто от системата, ако софтуерът
вече не е необходим.
Система |
Команда |
Бележки |
Debian / Ubuntu |
sudo apt-get remove package |
|
sudo apt remove
package |
||
sudo apt-get autoremove |
Премахва
ненужните пакети. |
|
CentOS |
sudo yum remove
package |
|
Fedora |
sudo dnf erase
package |
|
Пакети на FreeBSD |
sudo pkg delete
package |
|
sudo pkg autoremove |
Премахва ненужните
пакети. |
|
Портове на
FreeBSD |
sudo pkg delete
package |
|
cd /usr/ports/path_to_port && make deinstall |
Деинсталира
инсталиран порт. |
Администраторите на дистрибуции от семейство Debian
обикновено са запознати с apt-getи apt-cache. По-малко
известен е опростеният aptинтерфейс, създаден специално за интерактивна употреба.
Традиционно командване |
apt Еквивалентен |
apt-get update |
apt update |
apt-get dist-upgrade |
apt full-upgrade |
apt-cache search string |
apt search string |
apt-get install package |
apt install package |
apt-get remove package |
apt remove package |
apt-get purge package |
apt purge package |
Въпреки че aptчесто е по-бърз стенопис за
дадена операция, той не е предназначен като цялостен заместител на традиционните
инструменти и интерфейсът му може да се променя между версиите, за да подобри
използваемостта. Ако използвате команди за управление на пакети в скрипт
или конвейер на черупки, е добра идея да се придържате към apt-getи apt-cache.
В допълнение към уеб-базирани документи, имайте предвид, че Unix ръчни страници (които обикновено се наричат човека
страници ) са налични за повечето команди от черупката. За да
прочетете страница, използвайте man:
·
man page
·
копие
В man, можете да навигирате с клавишите със стрелки. Натиснете /,
за да търсите текст в страницата, и q, за да
излезете.
Система |
Команда |
Бележки |
Debian / Ubuntu |
man apt-get |
Актуализиране
на локалната база данни за пакети и работа с пакети. |
man apt-cache |
Запитване към
локалната база данни за пакети. |
|
man dpkg |
Работа с
отделни файлове на пакети и заявки за инсталирани пакети. |
|
man apt |
Работа с
по-кратък, лесен за използване интерфейс за повечето основни операции. |
|
CentOS |
man yum |
|
Fedora |
man dnf |
|
Пакети на FreeBSD |
man pkg |
Работа с
предварително компилирани двоични пакети. |
Портове на
FreeBSD |
man ports |
Работа с
колекцията Ports. |
Се запознахме с основните операции, които могат да бъдат препращани между
системите, но само надраскват повърхността на сложна тема. За повече
подробности за дадена система можете да се консултирате със следните ресурси: